from collections import deque
class Node():
def __init__(self, x):
self.id = x
self.connect = []
def bfs(start: int, nodes: list, t: list, visited: list) -> bool:
q = deque()
q.append(start)
visited[start] = True
while q:
cur = q.popleft()
if cur == len(t): # 到达编号为 n 的节点
return True
for e in nodes[cur].connect:
if not visited[e] and t[e - 1] == 0:
visited[e] = True
q.append(e)
return False
n, m = map(int, input().split())
nodes = [Node(i) for i in range(n + 1)]
t = list(map(int, input().split()))
for _ in range(m):
a, b = map(int, input().split())
nodes[a].connect.append(b)
nodes[b].connect.append(a)
visited = [False] * (n + 1)
if bfs(1, nodes, t, visited):
print("Yes")
else:
print("No")