#include <iostream>
#include <vector>
using namespace std;
const int N=1e5+5;
int n,m;
int t[N];
vector<int> g[N];
string ans="No";
bool v[N];
void f(int i){
if(v[i]) return;
if(t[i]) return;
if(i==n){ ans="Yes";return;}
v[i]=true;
if(g[i].size()){
for(int j:g[i]){
f(j);
}
}
}
int main() {
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>t[i];
for(int i=0;i<m;i++){
int a,b;cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
f(1);
cout<<ans;
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号