#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef tuple tp; typedef vector vt; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e9; const ll INF=2e18; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int main(){ int n,m; cin>>n>>m; assert(2<=n&&n<=1000&&0<=m&&m<=min(n*(n-1)/2,4000)); vi in(n); rep(i,n)cin>>in[i]; rep(i,n)assert(1<=in[i]&&in[i]<=1000000000); vvi fl(n,vi(2)); bool h=false; mapma; rep(i,m){ int a,b; cin>>a>>b; assert(1<=a&&ain[b]?0:1; if(fl[a][t ]&&fl[a][t ]!=in[b])h=true; if(fl[b][t^1]&&fl[b][t^1]!=in[a])h=true; fl[a][t ]=in[b]; fl[b][t^1]=in[a]; } if(h)cout<<"YES"<