def main(): N, M = map(int, input().split()) graph = [set() for _ in range(N)] degrees = [0] * N for _ in range(M): A, B = map(lambda n: int(n) - 1, input().split()) graph[A].add(B) graph[B].add(A) removable_edges = set() for idx, neighbors in enumerate(graph): if len(neighbors) != 1: continue for neighbor in neighbors: removable_edges.add((min(idx, neighbor), max(idx, neighbor))) ctr = 0 while removable_edges: cur_edge = removable_edges.pop() graph[cur_edge[0]].remove(cur_edge[1]) graph[cur_edge[1]].remove(cur_edge[0]) ctr += 1 if len(graph[cur_edge[0]]) == 1: for neighbor in graph[cur_edge[0]]: removable_edges.add( (min( cur_edge[0], neighbor), max( cur_edge[0], neighbor))) if len(graph[cur_edge[1]]) == 1: for neighbor in graph[cur_edge[1]]: removable_edges.add( (min( cur_edge[1], neighbor), max( cur_edge[1], neighbor))) if ctr % 2: print("Yes") else: print("No") if __name__ == "__main__": main()