var i,j,n,m,k,l,x,y,z,ans:longint;
      f,a:array[0..300,0..300]of longint;
      b:array[0..300]of longint;
  function max(a,b:longint):longint;
  begin
    if a>b then exit(a) else exit(b);
  end;
  function min(a,b:longint):longint;
   begin
    if a<b then exit(a) else exit(b);
   end;
 begin
   //assign(input,'core.in');reset(input);
   //assign(output,'core.out');rewrite(output);
   readln(n,m);
   fillchar(f,sizeof(f),63);
   for i:=1 to n do f[i,i]:=0;
    for i:=1 to n-1 do
    begin
     read(x,y,z);
      f[x,y]:=z;
     f[y,x]:=z;
    end;
   for k:=1 to n do
    for i:=1 to n do
     for j:=1 to n do
       if (f[i,j]>f[i,k]+f[k,j]) then
       begin
        f[i,j]:=f[i,k]+f[k,j];
       end;
   k:=0;
   for i:=1 to n do
    for j:=1 to n do
     if f[i,j]>k then
     begin      
	  k:=f[i,j];
      x:=i;y:=j;
     end;
   l:=0;
   for i:=1 to n do
   if f[x,i]+f[i,y]=f[x,y] then
   begin
    inc(l);
    b[l]:=i;
   end;
   ans:=maxlongint;
  for i:=1 to l do
    for j:=1 to l do
    begin
      if f[b[i],b[j]]>m then continue;
       k:=max(min(f[x,b[i]],f[x,b[j]]),min(f[b[i],y],f[b[j],y]));
      if k<ans then ans:=k;
    end;
   writeln(ans);
   //close(input);close(output);
end.

/**************************************************************
	Problem: 2275
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/