#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5+5;
using pii = pair<int, int>;
int p[N],vis[N],n,m;
vector<pii> G[N];

bool dfs(int x, int v){
	if(vis[x]) return p[x] == v;
	vis[x] = 1;
	p[x] = v;
	for(auto &n : G[x]){
		if(!dfs(n.first, v+n.second)) return false;
	}
	return true;
}

int main(){
	ios::sync_with_stdio(false);
    cin.tie(nullptr);
	
	cin >> n >> m;
	for(int i=0;i<m;++i){
		int a,b,d;
		cin >> a >> b >> d;
		G[a].push_back({b, d});
		G[b].push_back({a, -d});
	}
	
	for(int i=1;i<=n;++i){
		if(!vis[i]){
			if(!dfs(i, 0)){
				puts("No");
				return 0;
			}
		}
	}
	puts("Yes");
	return 0;
}

