#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;
const int N=100005;
int n,m,fa[N],d[N];
int getf(int k){
	if (fa[k]==k)
		return k;
	int f=fa[k];
	fa[k]=getf(fa[k]);
	d[k]+=d[f];
	return fa[k];
}
int main(){
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
		fa[i]=i;
	memset(d,0,sizeof d);
	for (int i=1;i<=m;i++){
		int L,R,D;
		scanf("%d%d%d",&L,&R,&D);
		if (getf(L)==getf(R)){
			if (d[L]-d[R]!=D){
				puts("No");
				return 0;
			}
		}
		else {
			int A=getf(L),B=getf(R);
			fa[B]=A,d[B]=d[L]-D-d[R];
		}
	}
	puts("Yes");
	return 0;
}