import sys, time, random
from collections import deque, Counter, defaultdict
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 61 - 1
mod = 998244353

n, m = mi()
graph = [[] for _ in range(n)]
for _ in range(m):
    a, b = mi()
    graph[a - 1].append(b - 1)
    graph[b - 1].append(a - 1)
    
# is bipartite

color = [-1] * n
def dfs(v, c):
    color[v] = c
    for u in graph[v]:
        if color[u] == -1:
            dfs(u, c ^ 1)
        elif color[u] == c:
            print('No')
            exit()
            
for i in range(n):
    if color[i] == -1:
        dfs(i, 0)
print('Yes')