from collections import deque def bfs(s): dq=deque() dq.append([s,0]) global dist,flag dist[s]=0 while len(dq)!=0: p,h=dq.popleft() for e in edge[p]: if dist[e]==10**9: dq.append([e,1-h]) dist[e]=1-h else: if dist[e]!=1-h: flag=False return dist N,M=map(int,input().split()) edge=[[] for _ in range(N)] for _ in range(M): a,b=map(int,input().split()) edge[a-1].append(b-1) edge[b-1].append(a-1) dist=[10**9 for _ in range(N)] flag=True for i in range(N): if dist[i]==10**9: bfs(i) if flag: print('Yes') else: print('No')