import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes") no = lambda :print("no");No = lambda :print("No") ####################################################################### n, m = na() g = [[] for i in range(n)] for i in range(m): a, b = na() g[a-1].append(b-1) g[b-1].append(a-1) def is_bipartite(g): n = len(g) color = [-1] * n for i in range(n): if color[i] == -1: stack = [i] color[i] = 0 while stack: v = stack.pop() for u in g[v]: if color[u] == -1: color[u] = color[v] ^ 1 stack.append(u) elif color[u] == color[v]: return False return True if is_bipartite(g): print("Yes") else: print("No")