# https://yukicoder.me/problems/no/3694 from collections import deque def main(): N, M = map(int, input().split()) next_nodes = [[] for _ in range(N)] for _ in range(M): a, b = map(int, input().split()) next_nodes[a - 1].append(b - 1) next_nodes[b - 1].append(a - 1) queue = deque() patterns = [-1] * N for s_i in range(N): if patterns[s_i] == -1: queue.append(s_i) patterns[s_i] = 0 while len(queue) >0: v = queue.popleft() for w in next_nodes[v]: if patterns[w] == -1: patterns[w] = 1 - patterns[v] queue.append(w) elif patterns[w] == patterns[v]: print("No") return print("Yes") if __name__ == "__main__": main()