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