using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Contest { class Scanner { private string[] line = new string[0]; private int index = 0; public string Next() { if (line.Length <= index) { line = Console.ReadLine().Split(' '); index = 0; } var res = line[index]; index++; return res; } public int NextInt() { return int.Parse(Next()); } public long NextLong() { return long.Parse(Next()); } public string[] Array() { line = Console.ReadLine().Split(' '); index = line.Length; return line; } public int[] IntArray() { return Array().Select(int.Parse).ToArray(); } public long[] LongArray() { return Array().Select(long.Parse).ToArray(); } } class Program { private int N, M; private int[] A; private List[] R; public void Solve() { var sc = new Scanner(); N = sc.NextInt(); M = sc.NextInt(); A = sc.IntArray(); R = new List[N]; for (int i = 0; i < N; i++) { R[i] = new List(); } for (int i = 0; i < M; i++) { var u = sc.NextInt() - 1; var v = sc.NextInt() - 1; R[u].Add(v); R[v].Add(u); } for (int i = 0; i < N; i++) { int less = 0; int great = 0; foreach (int j in R[i]) { if (A[j] < A[i]) { less++; } if (A[j] > A[i]) { great++; } } if ((less >= 2) || (great >= 2)) { Console.WriteLine("YES"); return; } } Console.WriteLine("NO"); } static void Main(string[] args) { new Program().Solve(); } } }