N,M = map(int,input().split()) edge = [[] for i in range(N)] for i in range(M): a,b,c = map(int,input().split()) edge[a-1].append(b-1) if c==1: edge[b-1].append(a-1) used = [False]*N used[0] = True def dfs(v,pv): for nv in edge[v]: if used[nv]: if nv!=pv: exit(print("Yes")) else: used[nv] = True dfs(nv,v) dfs(0,-1) print("No")