from collections import defaultdict n, m = map(int, input().split()) Edge = defaultdict(list) for _ in range(m): u, v = map(int, input().split()) u -= 1 v -= 1 Edge[u].append(v) Edge[v].append(u) Stack = [u] seen = set([u]) while Stack: cp = Stack.pop() for np in Edge[cp]: if np in seen: continue seen.add(np) Stack.append(np) odd_n = 0 for i in range(n): if i not in seen and Edge[i]: print("NO") exit() if len(Edge[i]) % 2 == 1: odd_n += 1 if odd_n <= 2: print("YES") else: print("NO")