n,m=map(int,input().split()) h=[0]+[*map(int,input().split())] G=[[]for _ in range(n+1)] for _ in range(m):a,b=map(int,input().split());G[h[a]]+=h[b],;G[h[b]]+=h[a], x=[-1e9]*-~n;y=[-1e9]*-~n x[h[1]]=y[h[n]]=0 for i in range(n+1): for j in G[i]: if j>i:x[j]=max(x[j],x[i]+1);y[j]=max(y[j],y[i]+1) print(max([x[i]+y[i]+1for i in range(n+1)]+[-1]))