#import using namespace std; long n,m,h[1<<17],G[1<<17],i,u,v,p[1<<18],q,x; main(){ for(cin>>n>>u;i>h[i]; for(i=0;cin>>u>>v;G[i++]=h[u]*n*n+u*n+v) if(h[--u]>h[--v]) swap(u,v); sort(G,G+i); p[0]=p[2*n-1]=n+1; for(i=0;x=G[i++];q=max(q,(p[v]=max(p[v],p[u]+1))+(p[v+n]=max(p[v+n],p[u+n]+1))-2*n)) u=x/n%n,v=x%n; cout<