#include <bits/stdc++.h>
int N, M;
int L[200010], R[200010], D[200010];
int fa[100010], V[100010];
int T[100010];
int getFa(int u) {
  int u2 = u;
  int d = 0;
  T[u] = d;
  while (fa[u] != -1) {
    d += V[u];
    u = fa[u];
    T[u] = d;
  }
  V[u2] = T[u];
  while (fa[u2] != -1) {
    int u3 = fa[u2];
    u2 = fa[u2];
    V[u2] = T[u] - T[u2];
  }
  return u;
}
int solve() {
  int i;
  for (i = 0; i < N; i++) {
    fa[i] = -1;
  }
  for (i = 0; i < M; i++) {
    int u1 = getFa(L[i]);
    int u2 = getFa(R[i]);
    if (u1 != u2) {
      fa[u2] = u1;
      V[u2] = V[L[i]] + D[i];
    } else {
      if (V[R[i]] - V[L[i]] != D[i]) return 0;
    }
  }
  return 1;
}
int main() {
  int i;
  scanf("%d%d", &N, &M);
  for (i = 0; i < M; i++) {
    scanf("%d%d%d", &L[i], &R[i], &D[i]);
    L[i]--, R[i]--;
  }
  if (solve())
    printf("Yes\n");
  else
    printf("No\n");
  return 0;
}
