import sys from collections import deque def main(): N, M = map(int, sys.stdin.readline().split()) adj = [[] for _ in range(N)] degree = [0] * N for _ in range(M): Sa, Sb = map(int, sys.stdin.readline().split()) adj[Sa].append(Sb) adj[Sb].append(Sa) degree[Sa] += 1 degree[Sb] += 1 # Check connectivity using BFS visited = [False] * N start = None for i in range(N): if degree[i] > 0: start = i break if start is None: # All nodes are isolated, but M >=1 so this can't happen print("NO") return q = deque() q.append(start) visited[start] = True while q: u = q.popleft() for v in adj[u]: if not visited[v]: visited[v] = True q.append(v) # Check if all nodes with edges are visited connected = True for i in range(N): if degree[i] > 0 and not visited[i]: connected = False break if not connected: print("NO") return # Count odd degrees odd_count = 0 for d in degree: if d % 2 != 0: odd_count += 1 if odd_count == 0 or odd_count == 2: print("YES") else: print("NO") if __name__ == "__main__": main()