#include <iostream>
#include <cstdio>
using namespace std;
int parent[50005];
int rank[50005];
int X;
int getpar(int a)
{
if (parent[a]!=a)
{
int tempar=parent[a];
parent[a]=getpar(parent[a]);
rank[a]=(rank[a]+rank[tempar])%300;
}
return parent[a];
}
void unio(int x,int y)
{
int xp=getpar(x);
int yp=getpar(y);
parent[yp]=xp;
if (rank[y]<=rank[x]+X)
rank[yp]=(rank[x]+X-rank[y])%300;
else
rank[yp]=300-(rank[y]-(rank[x]+X));
}
int main()
{
int n,m,i,a,b;
int ans=0;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
parent[i]=i;
for (i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&X);
int ap=getpar(a);
int bp=getpar(b);
if (ap==bp && (rank[a]+X)%300!=rank[b])
ans++;
else
unio(a,b);
}
printf("%d\n",ans);
}