def find(x): if P[x] == x: return x else: P[x] = find(P[x]) # 経路圧縮 return P[x] def same(x, y): return find(x) == find(y) def unite(x, y): x = find(x) y = find(y) if x == y: return 0 if x > y: x, y = y, x P[y] = x N, M = map(int, input().split()) AB = [list(map(int, input().split())) for _ in range(M)] P = [i for i in range(2 * (N + 1))] for a, b in AB: unite(a, b + N) unite(a + N, b) for i in range(1, N + 1): if not same(i, i + N): print("No") break else: print("Yes")