/*
TASK:capital
LANG:c
*/

#include<stdio.h>

int izp[10002] = {0};
int spisak[10002][10] = {0};
int n, k;
int br;
int path = 0;

void obhojdane(int v);

int main()
{
         int a = 1, b = 1, c = 1;

         scanf("%d", &n);
         scanf("%d", &k);
         br = n;

         while(a != 0 && b!= 0 && c != 0)
         {
                 scanf("%d %d %d", &a, &b, &c);
                 spisak[a][0]++;
                 spisak[b][0]++;
                 spisak[a][spisak[a][0]] = b;
                 spisak[b][spisak[b][0]] = a;
                 spisak[a][spisak[a][0]+4] = c;
                 spisak[b][spisak[b][0]+4] = c;
         }

         obhojdane(1);

         printf("%d\n", br);

         return 0;
}

void obhojdane(int v)
{
     int i, ppath;

     if (path > k)
     {
              return;
     }

     izp[v] = 1;
     br--;

     for(i = 1; i <= spisak[v][0]; i++)
     {
           if(izp[spisak[v][i]] == 0)
           {
                                path = path + spisak[v][i+4];
                                ppath = spisak[v][i+4];
                                obhojdane(spisak[v][i]);
                                path = path - ppath;
           }
     }
}
                 


            
