import heapq


def dist(N, a, b, w_mat):
    d_mat = [[100] * (N + 1) for _ in range(N + 1)]
    for i in range(N + 1):
        d_mat[i][i] = 0
    q = [(0, a)]
    heapq.heapify(q)
    # print("\n".join([str(r) for r in w_mat]))
    s = set()
    while len(q):
        # print(q)
        w, i = heapq.heappop(q)
        s.add(i)
        for ni, wi in [(ni, wi) for ni, wi in enumerate(w_mat[i])
                       if wi > 0 and ni not in s]:
            if d_mat[a][ni] > w + wi:
                d_mat[a][ni] = w + wi
                d_mat[ni][a] = w + wi
                heapq.heappush(q, (w + wi, ni))
    # print("\n".join([str(r) for r in d_mat]))
    # print("")
    return d_mat[a][b]


def solve(N, M, ABCs):
    # print(N, ",", M, ",", ABCs)
    d_mat = [[0] * (N + 1) for _ in range(N + 1)]

    w_mat = [[-1] * (N + 1) for _ in range(N + 1)]
    for i in range(N + 1):
        w_mat[i][i] = 0

    for a, b, c in ABCs:
        w_mat[a][b] = c
        w_mat[b][a] = c

    for s in range(1, N + 1):
        for e in range(s + 1, N + 1):
            d = dist(N, s, e, w_mat)
            d_mat[s][e] = d
            d_mat[e][s] = d

    ans = 0
    for a, b, c in ABCs:
        if c != d_mat[a][b]:
            ans += 1

    #    print("\n".join([str(r) for r in d_mat]))
    return ans



if __name__ == "__main__":
    N, M = tuple(map(int, input().split(" ")))
    ABCs = [tuple(map(int, input().split(" "))) for _ in range(M)]
    print(solve(N, M, ABCs))
