N,M = list(map(int,input().split())) A = list(map(int,input().split())) edge = [[] for _ in range(N)] for _ in range(M): u,v = list(map(int,input().split())) u-=1;v-=1 edge[u].append(v) edge[v].append(u) for i in range(1<>j & 1 == 0):continue use[j] = 1 if(all(sum(use[k] for k in edge[j]) == A[j] for j in range(N))): print("Yes") print(*use) exit() print("No")