#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3f
#define EPS (1e-10)
using namespace std;
typedef long long ll;
typedef pair<int,int>P;

vector<P>E[100000];
bool used[100000];
int a[100000];

void dfs(int v){
	used[v]=true;
	for(auto p:E[v]){
		if(used[p.second]){
			if(a[v]+p.first!=a[p.second]){
				puts("No");exit(0);
			}
		}
		else{
			a[p.second]=a[v]+p.first;
			dfs(p.second);
		}
	}
}
signed main(){
	int n,m;scanf("%d%d",&n,&m);
	rep(i,m){
		int l,r,d;scanf("%d%d%d",&l,&r,&d);l--;r--;
		E[l].push_back(P(d,r));
		E[r].push_back(P(-d,l));
	}
	rep(i,n){
		if(!used[i]){
			dfs(i);
		}
	}
	puts("Yes");
}