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
****************************************************************/