#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
#define pb push_back
#define mp make_pair
#define fr(i,n) for(int i=0;i<n;i++)
#define Fr(i,n) for(int i=0;i++<n;)
#define ifr(i,n) for(int i=n-1;i>=0;i--)
#define iFr(i,n) for(int i=n;i>0;i--)

int main(){
  ll n,m,a[1010],b[1010],c[110][110]={},d[110][110]={},ans=0;
  cin>>n>>m;
  Fr(i,n) Fr(j,n) if(i!=j) d[i][j]=10000;
  Fr(i,m){
    cin>>a[i]>>b[i];
    cin>>c[a[i]][b[i]];
    c[b[i]][a[i]]=c[a[i]][b[i]];
    d[a[i]][b[i]]=c[a[i]][b[i]];
    d[b[i]][a[i]]=c[a[i]][b[i]];
  }
  Fr(k,n) Fr(i,n) Fr(j,n) d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
  Fr(i,m) if(c[a[i]][b[i]]>d[a[i]][b[i]]) ans++;
  cout<<ans<<endl;
}