#include <bits/stdc++.h>
#define int long long
using namespace std;
vector <vector <int> > gr;
// vector <bool> vis;
vector <int> sm;
vector <int> s;
vector <int> p;
void dfs(int i) {
sm[i] += s[i];
// cout << i << " ";
for (auto j : gr[i]) {
if (sm[j]) continue;
dfs(j);
sm[i] += sm[j];
p[j] = i;
}
return ;
}
void solve() {
int n, m;
cin >> n >> m;
gr.assign(n + 1, vector <int> ());
// vis.assign(n + 1, false);
sm.assign(n + 1, 0);
s.assign(n + 1, 0);
p.assign(n + 1, 0);
for (int i = 1; i <= n; i ++) cin >> s[i];
for (int i = 1; i <= m; i ++) {
int u, v;
cin >> u >> v;
gr[u].push_back(v);
gr[v].push_back(u);
}
dfs(1);
cout << 1;
for (int i = 2; i <= n; i ++) {
if (sm[i] >= s[p[i]]) cout << 1;
else cout << 0;
}
cout << '\n';
}
signed main() {
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t = 1;
// cin >> t;
while (t --) solve();
return 0;
}