from collections import defaultdict n,m = map(int,input().split()) a = [0] * m b = [0] * m for i in range(m): a[i], b[i] = map(int,input().split()) a[i] -= 1 b[i] -= 1 c = list(map(int,input().split())) q = 0 for i in range(n): q ^= c[i] << i r = m - m//2 v = defaultdict(lambda: 10 ** 9) for i in range(1 << r): cnt = 0 h = 0 for j in range(r): if (i >> j & 1): cnt += 1 h ^= 1 << a[m // 2 + j] h ^= 1 << b[m // 2 + j] v[h] = min(v[h], cnt) r2 = m//2 ans = 10 ** 9 for i in range(1 << r2): cnt = 0 h = 0 for j in range(r2): if (i >> j & 1): cnt += 1 h ^= 1 << a[j] h ^= 1 << b[j] ans = min(ans, v[q ^ h] + cnt) if ans >= 10 ** 7: print(-1) else: print(ans)