#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n, m; cin >> n >> m; vector a(n); rep(i, n) cin >> a[i]; vector Graph(n, vector()); rep(_, m) { int u, v; cin >> u >> v; --u, --v; Graph[u].push_back(v); Graph[v].push_back(u); } rep(bit, 1 << n) { bool ok = true; rep(i, n) { int cnt = 0; for (int j : Graph[i]) cnt += (bit >> j) & 1; if (cnt != a[i]) ok = false; } if (ok) { cout << "Yes" << '\n'; rep(i, n) cout << ((bit >> i) & 1) << ' '; cout << '\n'; return 0; } } cout << "No" << '\n'; return 0; }