#include using namespace std; int main() { int N, M; cin >> N >> M; vector A(N); vector> G(M); for (int i = 0; i < N; i++) { cin >> A[i]; } for (int i = 0; i < M; i++) { cin >> G[i].first >> G[i].second; G[i].first--, G[i].second--; } for (unsigned mask = 0; mask < (1 << N); mask++) { vector cnt(N); for (int i = 0; i < M; i++) { if ((mask >> G[i].first) & 1) cnt[G[i].second]++; if ((mask >> G[i].second) & 1) cnt[G[i].first]++; } bool ok = true; for (int i = 0; i < N; i++) { ok &= A[i] == cnt[i]; } if (ok) { cout << "Yes" << endl; for (int i = 0; i < N; i++) { cout << ((mask >> i) & 1) << ' '; } cout << endl; return 0; } } cout << "No" << endl; return 0; }