f=lambda:map(int,input().split()) n,m,*G=f() h=0,*f() for _ in[k:=0]*m: a,b=f() if h[a]>h[b]:a,b=b,a G+=(h[a],a,b),(h[a],a+n,b+n) p=[-4*n]*4*n p[1]=p[2*n]=1 for _,a,b in sorted(G):p[b]=max(p[b],p[a]+1);k=max(k,p[b]+p[b-n]) print(k-1)