#include<bits/stdc++.h> using namespace std; using Int = long long; template<typename T> void chmin(T &a,T b){if(a>b) a=b;} template<typename T> void chmax(T &a,T b){if(a<b) a=b;} signed main(){ Int n,m; cin>>n>>m; vector<Int> a(n); for(Int i=0;i<n;i++) cin>>a[i]; vector<vector<Int> > G(n); for(Int i=0;i<m;i++){ Int u,v; cin>>u>>v; u--;v--; G[u].emplace_back(v); G[v].emplace_back(u); } for(Int i=0;i<n;i++){ set<Int> mi,ma; for(Int u:G[i]){ if(a[u]<a[i]) mi.emplace(a[u]); if(a[u]>a[i]) ma.emplace(a[u]); } if(mi.size()>1u||ma.size()>1u){ cout<<"YES"<<endl; return 0; } } cout<<"NO"<<endl; return 0; }