from collections import defaultdict, deque n, m = map(int, input().split()) G = defaultdict(list) for _ in range(m): a, b = map(int, input().split()) a -= 1 b -= 1 G[a].append(b) G[b].append(a) visited = [[False, False] for _ in range(n)] for i in range(n): if visited[i][0] and visited[i][1]: continue if visited[i][0] and not visited[i][1]: print("No") exit() if not visited[i][0] and visited[i][1]: print("No") exit() Que = deque([(i, 0)]) visited[i][0] = True while Que: cp, cf = Que.popleft() nf = 1 ^ cf for np in G[cp]: if visited[np][nf]: continue visited[np][nf] = True Que.append((np, nf)) for i in range(n): if not visited[i][0] or not visited[i][1]: print("No") exit() print("Yes")