n,m = map(int,input().split()) *a, = map(int,input().split()) for i in range(n-1): if a[i] == a[i+1]: print("No") exit() for i in range(n-2): if a[i] == a[i+2]: print("No") exit() g = [[] for _ in range(m+1)] ind = [0]*(m+1) for i in range(n-1): if i%2: g[a[i]].append(a[i+1]) ind[a[i+1]] += 1 else: g[a[i+1]].append(a[i]) ind[a[i]] += 1 q = [i for i in range(m+1) if i and ind[i]==0] ans = [0]*m i = 1 while q: v = q.pop() ans[v-1] = i i += 1 for c in g[v]: ind[c] -= 1 if ind[c]==0: q.append(c) if any(x for x in ind): print("No") else: print("Yes") print(*ans)