#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> n2;
vector<vector<int> > n1;
vector<int> pa;
vector<int> sz;
void dfs(int x, int p){
sz[x] = n2[x];
for (int i = 0;i<n1[x].size();i++){
if (n1[x][i]==p) continue;
pa[n1[x][i]] = x;
dfs(n1[x][i],x);
sz[x]+=sz[n1[x][i]];
}
}
signed main(){
int n,k;
cin>>n>>k;
n1.resize(n);
n2.resize(n);
pa.resize(n);
sz.resize(n);
for (int i = 0;i<n;i++) cin>>n2[i];
for (int i = 0;i<k;i++){
int a,b;
cin>>a>>b;
n1[a-1].push_back(b-1);
n1[b-1].push_back(a-1);
}
sz[0] = n2[0];
pa[0] = 0LL;
dfs(0,-1);
string ans = "";
for (int i = 0;i<n;i++) ans = ans+"0";
for (int i =0;i<n;i++){
if (sz[i]>=n2[pa[i]]) ans[i] = '1';
}
cout<<ans;
return 0;
}