#include <iostream>
#include <algorithm>
#include <cmath>
#define INF 100000000
using namespace std;
typedef long long ll;
ll n, m, a[1000], b[1000], c[1000], dst[101][101];

void warshall_floid(){
	for(ll k = 1; k <= n; k++)
		for(ll i = 1; i <= n; i++)
			for(ll j = 1; j <= n; j++)
				dst[i][j] = min(dst[i][k]+dst[k][j], dst[i][j]);
}

int main() {
	cin >> n >> m;
	for(ll i = 1; i <= n; i++){for(ll j = 1; j <= n; j++){dst[i][j] = INF;} dst[i][i] = 0;}
	for(ll i = 0; i < m; i++){
		cin >> a[i] >> b[i] >> c[i];
		dst[a[i]][b[i]] = c[i];
		dst[b[i]][a[i]] = c[i];
	}
	
	warshall_floid();
	
	ll ans = m;
	for(ll e = 0; e < m; e++){
		for(ll i = 1; i <= n; i++){
			if(dst[i][b[e]] == dst[i][a[e]] + c[e]){
				ans--;
				break;
			}
		}
	}
	
	cout << ans;
	return 0;
}