#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
int n, m, fa[N];
long long dist[N];
int getfa(int x) {
  if (fa[x] == x) return x;
  int ff = fa[x];
  long long len = dist[x];
  fa[x] = getfa(fa[x]);
  dist[x] = dist[ff] + len;
  return fa[x];
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) fa[i] = i;
  for (int i = 1; i <= m; i++) {
    int l, r;
    long long d;
    scanf("%d%d%lld", &l, &r, &d);
    int x = getfa(l), y = getfa(r);
    if (x != y) {
      long long d1 = dist[l], d2 = dist[r];
      if (d1 + d >= d2) {
        fa[y] = x;
        dist[y] = dist[x] + d1 + d - d2;
      } else {
        fa[x] = y;
        dist[x] = dist[y] + d2 - d1 - d;
      }
    } else {
      if (dist[r] - dist[l] != d) {
        printf("No %d\n", i);
        return 0;
      }
    }
  }
  for (int i = 1; i <= n; i++)
    if (dist[i] > 1e9) {
      printf("No\n");
      return 0;
    }
  printf("Yes\n");
  return 0;
}
