42 lines
736 B
C++
42 lines
736 B
C++
#include<algorithm>
|
|
#include<iostream>
|
|
#include<fstream>
|
|
#include<cstring>
|
|
#include<cstdlib>
|
|
#include<vector>
|
|
#include<cstdio>
|
|
#include<cmath>
|
|
#include<ctime>
|
|
#include<set>
|
|
using namespace std;
|
|
int n,m,i,j,k,a[5000]={0},g[5000][5000],s;
|
|
char as;
|
|
int main()
|
|
{
|
|
cin>>m>>n;
|
|
for (i=1; i<=m; i++)
|
|
{
|
|
s=0; as=1;
|
|
while(as!=10)
|
|
{
|
|
s++;
|
|
cin>>a[s];
|
|
as=getchar();
|
|
}
|
|
for(j=1; j<=s-1; j++)
|
|
for(k=j+1; k<=s; k++)
|
|
g[a[j]][a[k]]=1;
|
|
}
|
|
for(i=1; i<=n; i++)
|
|
for(j=1; j<=n; j++)
|
|
{
|
|
if(g[i][j]==0) g[i][j]=100000;
|
|
}
|
|
for(k=1; k<=n; k++)
|
|
for(i=1; i<=n; i++)
|
|
for(j=1; j<=n; j++)
|
|
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
|
|
if (g[1][n]>=100000) cout<<"NO";
|
|
else cout<<g[1][n]-1;
|
|
}
|
|
|