import sys 

temp=input().split(" ")
n=int(temp[0])
m=int(temp[1])
p=[]
con={} #連結の情報を表す
for i in range(n+1):
    con[i]=[]
dis=[[-1 for i in range(n+1)] for j in range(n+1)] #[y][x] y→xのコストを表す

cos=[None for i in range(n+1)] #あるvのコスト(暫定)を表す

for i in range(m):
    temp=input()
    temp=list(map(int,temp.split(" ")))
    p.append(temp)
for temp in p: #yからxの距離d をdis[y][x]=dとして確保 グラフの作成フェイズ
    x=int(temp[0])
    y=int(temp[1])    
    d=int(temp[2])
    dis[y][x]=d
    dis[x][y]=-d
    con[y].append(x) 
for v in range(1,n+1):
   # print(con)
    while len(con[v])!=0:
        temp=con[v].pop()
        #print((cos[temp],cos[v]))
        if cos[v] is None:
            if cos[temp] is None:
                cos[temp]=0
            cos[v]=cos[temp]+dis[temp][v]
        if cos[temp] is None:
                cos[temp]=0
       # print((cos[temp],cos[v]))
        if cos[v]!=cos[temp]+dis[temp][v]:
            print("No")
            sys.exit()
print("Yes")

