#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
#define INF 1001

int main(){
  int n, m;
  cin >> n >> m;
  vector<vector<int>> v1(n, vector<int>(n, INF));
  vector<vector<int>> v2(n, vector<int>(n, INF));
  for(int i=0;i<m;i++){
    int a, b, c;
    cin >> a >> b >> c;
    v1[a-1][b-1]=v1[b-1][a-1]=c;
    v2[a-1][b-1]=c;
  }
  for(int k=0;k<n;k++){
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        if (v1[i][j] > v1[i][k]+v1[k][j]){
          v1[i][j]=v1[i][k]+v1[k][j];
        }
      }
    }
  }
  int ans=0;
  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      if(v2[i][j]==INF){
        continue;
      }else{
        if(v2[i][j] > v1[i][j]){
          ans++;
        }
      }
    }
  }
  cout << ans << endl;
  return 0;
}