#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define sz(x) (int)(x).size()
void solve() {
int n, m;
cin >> n >> m;
vector<ll> s(n);
for (auto &x : s) {
cin >> x;
}
vector<vector<int>> adj(n);
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
u--, v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
for (int i = 0; i < n; i++) {
sort(adj[i].begin(), adj[i].end(), [&](int u, int v) {
return s[u] < s[v];
});
}
vector<bool> vis(n);
ll siz = 0, tot = accumulate(s.begin(), s.end(), 0LL);
auto dfs = [&](auto &dfs, int u) -> void {
vis[u] = true;
siz += s[u];
for (int v : adj[u]) {
if (!vis[v] && siz >= s[v]) {
dfs(dfs, v);
}
}
};
for (int i = 0; i < n; i++) {
vis.assign(n, false);
siz = 0;
dfs(dfs, i);
cout << (siz == tot ? 1 : 0);
}
cout << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}