#include #include using namespace std; struct muc{ int start; int nod; int cost; }; vector gr[250005]; int s[100005],viz[100005],sum[100005]; muc aux; int n,m; void dfs1(int x) { int i,j; viz[x]=1; for(i=0;isum[x]+gr[x][i].cost) { sum[gr[x][i].nod]=sum[x]+gr[x][i].cost; dfs1(gr[x][i].nod); } } viz[x]=0; } void dfs2(int x) { int i; s[x]=1; for(i=0;i>n>>m; for(i=1;i<=n;i++) { sum[i]=1000000000; cin>>x>>y>>z; aux.nod=y; aux.cost=z; aux.start=x; gr[x].push_back(aux); } for(i=1;i<=n;i++) { dfs1(i); viz[i]=1; } for(i=1;i<=n;i++) if(sum[i]<0); { dfs2(i); s[i]=1; } int k=0; for(i=1;i<=n;i++) if (s[i]==1) k++; cout<