import sys import io, os input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline n, m = map(int, input().split()) g = [[] for i in range(n)] ind = [0]*n for i in range(m): a, b = map(int, input().split()) a, b = a-1, b-1 g[a].append(b) g[b].append(a) ind[a] += 1 ind[b] += 1 from collections import deque def cycle_detectable_topological_sort(g, ind): V = len(g) order = [] depth = [-1]*V q = deque([]) for i in range(V): if ind[i] == 1: depth[i] = 0 q.append(i) while q: v = q.popleft() if ind[v] == 1: order.append(v) cur_depth = depth[v] for u in g[v]: ind[u] -= 1 if ind[u] == 1: depth[u] = max(depth[u], cur_depth+1) q.append(u) return order, depth order, depth = cycle_detectable_topological_sort(g, ind) if len(order)%2 == 1: print('Yes') else: print('No')