#include <bits/stdc++.h>
#define int long long

using namespace std;

typedef pair<int,int>P;
typedef pair<P,int>P2;

#define fi first
#define se second

int ans[222222];

int Q=1e15,flag=0;

main(){

  for(int i=0;i<222222;i++)ans[i]=Q;

  int n,m;
  cin>>n>>m;
  vector<P2>v1,v2;
  for(int i=0;i<m;i++)
  {
    int a,b,c;
    cin>>a>>b>>c;
    v1.push_back(P2(P(a,b),c));
    v2.push_back(P2(P(b,a),c));
  }

  sort(v1.begin(),v1.end());

  int x1=0,x2=0;

  for(int X=1;X<=n;X++)
  {
    while(x1<m&&v1[x1].fi.fi==X)
    {
      int l=v1[x1].fi.fi;
      int r=v1[x1].fi.se;
      int cost=v1[x1].se;
      if(!x1){
        ans[l]=0;
        ans[r]=cost;
      }
      else if(ans[l]==Q&&ans[r]==Q)
      {
        ans[l]=0;
        ans[r]=cost;
      }
      else if(ans[l]!=Q&&ans[r]==Q)
      {
        ans[r]=ans[l]+cost;
      }
      else if(ans[l]==Q&&ans[r]!=Q)
      {
        ans[l]=ans[r]-cost;
      }
      else
      {
        if(ans[l]+cost!=ans[r])flag++;
      }
      x1++;
    }
  }
  if(flag)cout<<"No"<<endl;
  else cout<<"Yes"<<endl;
}