# 1389번. 케빈 베이컨의 6단계 법칙
importsysinput=sys.stdin.readlinen,m=map(int,input().split())re=[[0]*(n+1)for_inrange(n+1)]foriinrange(m):a,b=map(int,input().split())re[a][b]=1re[b][a]=1forpinrange(1,n+1):foriinrange(1,n+1):forjinrange(1,n+1):ifi==j:continueelse:ifre[i][p]andre[p][j]:ifre[i][j]==0:re[i][j]=re[i][p]+re[p][j]else:re[i][j]=min(re[i][j],re[i][p]+re[p][j])ans=[]foriinre:ans.append(sum(i))# 가장 작은 값을 찾는다
minn=min(ans[1:])# 여러 개라면 index()를 통해서 제일 앞에 있는 인덱스를 반환
print(ans.index(minn))