/*
TASK:capital
LANG:C
*/

#include <stdio.h>
#define MAXN 10001
#define LONGMAX 2000000000
void floid();
unsigned long **city;
unsigned long N, K;

main()
{
    
    unsigned long i, y, a, b, c, all=0;
    scanf("%i %i", &N, &K);
    city=calloc(N, sizeof(unsigned long *));
    for(i=0; i<N; i++)city[i]=calloc(N, sizeof(unsigned long));
    for(i=0; i<N; i++)for(y=0; y<N; y++)city[i][y]=LONGMAX;
    
    while(1)
    {
        scanf("%i %i %i", &a, &b, &c);
        if(!a&&!b&&!c)break;
        city[a-1][b-1]=city[b-1][a-1]=c;
    }
    floid();
    for(i=1; i<N; i++)
        if(city[0][i]>K)all++;
    printf("%i\n", all);
    return 0;
}

void floid()
{
unsigned long i, y, z;
    for(i=0; i<N; i++)
        for(y=0; y<N; y++)
            for(z=0; z<N; z++)
                if(city[y][i]+city[i][z]<city[y][z])
                    city[y][z]=city[y][i]+city[i][z];
}

