(n,m),a,*q=$<.map{|e|e.split.map &:to_i}
h=Hash.new{|h,k|h[k]=[]}
q.each{|u,v|h[u-1]<<v-1;h[v-1]<<u-1}
puts h.any?{|k,v|
	h0=Hash.new 0
	h1=Hash.new 0
	v.each{|e|
		h0[a[e]]+=1 if a[k]<a[e]
		h1[a[e]]+=1 if a[k]>a[e]
	}
	[h0,h1].map{|g|
		x=g.values.reduce(0,:+)
		x=x*~-x/2
		g.each_value{|w|x-=w*~-w/2}
		x
	}.reduce(:+)>0 # 門松パスの個数
} ? :YES : :NO