#include using namespace std; int main() { int N, M; cin >> N >> M; vector A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } vector> graph(N); for (int _ = 0; _ < M; _++) { int u, v; cin >> u >> v; u--, v--; graph[u].push_back(v); graph[v].push_back(u); } for (int bit = 0; bit < (1 << N); bit++) { bool is_valid = true; for (int u = 0; u < N; u++) { int sum = 0; for (int v : graph[u]) { sum += (bit >> v) & 1; } if (sum != A[u]) { is_valid = false; break; } } if (is_valid) { cout << "Yes" << endl; for (int i = 0; i < N - 1; i++) { cout << ((bit >> i) & 1) << " "; } cout << ((bit >> (N - 1)) & 1) << endl; return 0; } } cout << "No" << endl; return 0; }