n,m=map(int,input().split())
arr=[0]*(n+1)
mem=[0]*(n+1)
job=[]
flag=True
for i in range(m):
  a,b,d=map(int,input().split())
  if a<=b:
  	job.append([a,b,d])
  else:
  	job.append([b,a,-d])
job=sorted(job, key=lambda x:x[0])
print(job)
for i in range(m):
  a=job[i][0]
  b=job[i][1]
  d=job[i][2]
  tmp=arr[b]-arr[a]
  if mem[a]*mem[b]==0:
  	if mem[b]==0:
  		arr[b]=arr[a]+d
  	else:
  		arr[a]=arr[b]-d
  	mem[a]=1
  	mem[b]=1
  else:
    if tmp!=d:
      flag=False
      break
if flag:
  print('Yes')
else:
  print('No')