dalao求调
#include<bits/stdc++.h>
#define INF 0x7fffffff
#define int long long
using namespace std;
const int N=1005;
inline int read(){
int XX=0,FF=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
FF*=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
XX=XX*10+ch-48;
ch=getchar();
}
return XX*FF;
}
int a[N][N];
int maxn=-1;
signed main(){
ios::sync_with_stdio(false);
int n=read(),m=read(),s=1;
for(int i=1;i<=n;++i){
for(int j=1;j<i;++j){
a[i][j]=a[j][i]=INF;
}
}
for(int i=1;i<=m;++i){
int u=read(),v=read(),w=1;
a[u][v]=min(a[u][v],w);
}
for(int k=1;k<=n;++k){
for(int i=1;i<=n;++i){
if(i==k||a[i][k]==INF){
continue;
}
for(int j=1;j<=n;++j){
if(a[i][j]>a[i][k]+a[k][j]){
a[i][j]=a[i][k]+a[k][j];
}
}
}
}
for(int i=1;i<=n;++i){
maxn=max(maxn,a[s][i]);
}
cout<<maxn;
return 0;
}