#include<bits/stdc++.h>
using namespace std;
const int INF = 100000000;

int main(){
	int N, M;
	cin >> N >> M;
	int a[M], b[M], c[M], d[N][N];
	for(int i=0; i<N; i++){
		for(int j=0; j<N; j++){
			d[i][j] = INF;
		}
		d[i][i] = 0;
	}
	for(int i=0; i<M; i++){
		cin >> a[i] >> b[i] >> c[i];
		a[i]--;
		b[i]--;
		d[a[i]][b[i]] = c[i];
		d[b[i]][a[i]] = c[i];
	}
	for(int i=0; i<N; i++){
		for(int j=0; j<N; j++){
			for(int k=0; k<N; k++){
				d[j][k] = min(d[j][k], d[j][i] + d[i][k]);
			}
		}
	}
	int ans = 0;
	for(int i=0; i<M; i++){
		bool flag = true;
		for(int j=0; j<N; j++){
			for(int k=0; k<N; k++){
				if(c[i] + d[j][a[i]] + d[b[i]][k] == d[j][k] || c[i] + d[j][b[i]] + d[a[i]][k] == d[j][k]){
					flag = false;
				}
			}
		}
		if(flag) ans++;
	}
	cout << ans << endl;
	return 0;
}