#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,m,g[505][505];
string s;
int main()
{
scanf("%d %d\n",&m,&n);
//getline(cin, s);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j) g[i][j]=1e5;
else g[i][j]=1;
for(int i=1;i<=m;i++)
{
getline(cin,s);
int len=s.size(),a[505],k=1,p=1;
memset(a,0,sizeof(a));
for(int j=len-1;j>=0;j--)
{
if(s[j]==' ') k=1,p++;
else{
a[p]+=(s[j]-'0')*k;
k*=10;
}
}
for(int j=p;j>1;j--)
{
for(int l=j-1;l>=1;l--)
{
g[a[j]][a[l]]=1;
}
}
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
//for(int i=1;i<=n;i++)
//for(int j=1;j<=n;j++)
//cout<<i<<" "<<j<<" "<<g[i][j]<<endl;
if(g[1][n]==1e5) cout<<"NO";
else cout<<g[1][n]-1;
return 0;
}