#include<bits/stdc++.h>
using namespace std;
int fr[100005],nex[400005],vi[400005],wi[400005],tot=0;
void add(int x,int y,int z){
	nex[++tot]=fr[x];vi[tot]=y;wi[tot]=z;fr[x]=tot;
}
int n,m,vs[100005],d[100005];
void dfs(int x,int fa){
	vs[x]=1;
	for(int i=fr[x];i;i=nex[i])if(fa!=vi[i]){
		if(d[vi[i]]!=0x7f7f7f7f){
			if(wi[i]!=d[vi[i]]-d[x]){
				puts("No");exit(0);
			}
		}else{
			d[vi[i]]=d[x]+wi[i];
			dfs(vi[i],x);
		}
	}
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1,x,y,z;i<=m;++i){
		scanf("%d%d%d",&x,&y,&z);
		add(x,y,z);
		add(y,x,-z);
	}
	memset(d,0x7f,sizeof d);
	for(int i=1;i<=n;++i)if(!vs[i])dfs(i,i);
	puts("Yes");
	return 0;
}