#include<bits/stdc++.h>
using namespace std;

bool vis[100001];
map<int,int> mp;
int n,m;
vector<pair<int,int> > v[100001];

void dfs(int now,int shen){
	//cout<<now<<endl;
	if(vis[now]){
		if(mp[now]!=shen){
			cout<<"No";
			exit(0);
		}
		else
			return;
	}
	
	vis[now]=true;
	mp[now]=shen;
	
	for(int i=0;i<v[now].size();i++){
		int c=v[now][i].first;
		dfs(c,shen+v[now][i].second);
	}
}


int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int l,r,d;
		cin>>l>>r>>d;
		v[l].push_back(make_pair(r,d));
		v[r].push_back(make_pair(l,-d));
	}
	
	for(int i=1;i<=n;i++)
		if(!vis[i])
			dfs(i,0);
	
	
	cout<<"Yes";
	return 0;
}
