def calcs(x,y,ax,ay,bx,by) ((ax-x)*(by-y)-(bx-x)*(ay-y))/2.0 end
def inpf() a=gets.chomp.split(" ").map(&:to_f)end
def inps() a=gets.chomp.split(" ")end  
def copy(a) Marshal.load(Marshal.dump(a)) end
def kaizyo(n)(n < 2)? 1 : (2..n).inject(:*) end
def scount(a) b=na(a.max+1);a.each{|n|b[n]+=1};return b end
def na(n,d=0) Array.new(n,d)end
def na2(n,m,d=0) Array.new(n){Array.new(m,d)}end
def na3(n,m,l,d=0) Array.new(n){Array.new(m){Array.new(l,d)}}end
def bit(n) n.to_s(2).split("").map(&:to_i) end
def inp() a=gets.chomp.split(" ").map(&:to_i)end
class Hp
  def initialize(len)
    @main = na(len,[999999999,-1])
    @ind = 1
    @main[0] = [-99999999,-1]
    @size = len - 5
  end
  def push(n)
    p "wa" if(@ind > @size)
    @main[@ind] = n
    sind = @ind
    while(sind != 0)
      nind = sind/2
      @main[sind], @main[nind] = @main[nind], @main[sind] if(@main[sind][0] < @main[nind][0])
      sind /= 2
    end
    @ind += 1
  end
  def put()
    return @main
  end
  def pop()
    ans = @main[1]
    @main[1] = @main[@ind]
    @main[@ind] = [999999999,-1]
    sind = 1
    while(true)
      nind = sind*2
      break if(nind > @ind)
      l = @main[nind]
      nind += 1 
      if(nind > @ind)
        ind = nind-1
        if(@main[ind][0] < @main[sind][0])
          @main[sind], @main[ind] = @main[ind], @main[sind] 
        end
        break 
      end
      r = @main[nind]
      ind = (l[0] > r[0])? nind : nind-1
      if(@main[ind][0] < @main[sind][0])
        @main[sind], @main[ind] = @main[ind], @main[sind] 
      end
      sind = ind
    end
    @ind -= 1
    return ans
  end
  def res()
    @ind = 1
    @main.push([999999999,-1])
  end
end
n,m = inp
pas = na2(n+1,0)
rec = na2(n+1,n+1,999999999)

test = []
m.times do 
  a,b,c=inp
  pas[a].push([b,c])
  pas[b].push([a,c])
  test.push([a,b,c])
end
#p pas
used = na(n)
hp = Hp.new(1100)
hp.push([1,1])
(1..n).each do |s|
  hp.put
  hp.res
  rec[s][s] = 0
  ind = s
  used = na(n+1,0)
  while(ind > 0) do
    used[ind] = true;
    max = 999999
    nex = -1
    tab = pas[ind]
    tab.each do |a|
      hi = a[0]
      next if(used[hi] == true)
      kyori = rec[s][ind] + a[1]
      rec[s][hi] = kyori if rec[s][hi] > kyori
      hp.push([kyori,hi])  if(used[hi] != true)
    end
    nex = hp.pop[1]
    used[nex] = true;
    
    ind = nex
  #rererereerer[missmissniu] += [waawawawawwa[bugbugbubg]] if(nex < 0)
  end
end
#p rec
c = 0
test.each do|a|
  if(rec[a[0]][a[1]] != a[2])
    c +=1
  end
end
p c