#include<bits/stdc++.h>
#define int long long
#define ii pair<int,int>
#define fi first
#define se second
using namespace std;
const int N = 2e5;
const int K = 2e6;
int n, k, sz[N+10], mn[K+10], timer[K+10], del[N+10], cnt, res=1e18;
vector<ii> adj[N+10];
void dfs(int u, int pu){
sz[u]=1;
for (ii p: adj[u]){
int v = p.fi;
if (v==pu || del[v]) continue;
dfs(v,u);
sz[u]+=sz[v];
}
}
int find_centroid(int u,int pu, int szroot){
for (ii p: adj[u]){
int v = p.fi;
if (v==pu || del[v]) continue;
if (sz[v]>szroot/2) return find_centroid(v,u, szroot);
}
return u;
}
void up(int u, int pu, int w, int d){
if (w>k) return;
if (timer[w]!= cnt) mn[w] =d;
else mn[w] = min(mn[w],d);
timer[w] = cnt;
for (ii p: adj[u]){
int v = p.fi;
int c = p.se;
if (v==pu || del[v]) continue;
up(v,u,w+c,d+1);
}
}
void calc(int u, int pu, int w, int d){
if (w>k) return;
if (timer[k-w]==cnt) res = min(res, mn[k-w]+d);
for (ii p: adj[u]){
int v = p.fi;
int c = p.se;
if (v==pu || del[v]) continue;
calc(v,u,w+c,d+1);
}
}
void solve(int u){
dfs(u,0);
u = find_centroid(u,0,sz[u]);
del[u]=1;
cnt++;
timer[0] = cnt;
for (ii p: adj[u]){
int v = p.fi;
int w = p.se;
if (del[v]) continue;
calc(v,u,w,1);
up(v,u,w,1);
}
for (ii p: adj[u]){
int v = p.fi;
int w = p.se;
if (del[v]) continue;
solve(v);
}
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin>> n>>k;
for (int i=1;i<n;i++){
int u,v,w; cin>>u>>v>>w;
adj[u].push_back({v,w});
adj[v].push_back({u,w});
}
memset(mn,0x3f,sizeof(mn));
mn[0]=0;
solve(1);
cout <<(res != 1e18? res:-1);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTiA9IDJlNTsKY29uc3QgaW50IEsgPSAyZTY7CgppbnQgbiwgaywgc3pbTisxMF0sIG1uW0srMTBdLCB0aW1lcltLKzEwXSwgZGVsW04rMTBdLCBjbnQsIHJlcz0xZTE4Owp2ZWN0b3I8aWk+IGFkaltOKzEwXTsKCnZvaWQgZGZzKGludCB1LCBpbnQgcHUpewogICAgc3pbdV09MTsKICAgIGZvciAoaWkgcDogYWRqW3VdKXsKICAgICAgICBpbnQgdiA9IHAuZmk7CiAgICAgICAgaWYgKHY9PXB1IHx8IGRlbFt2XSkgY29udGludWU7CiAgICAgICAgZGZzKHYsdSk7CiAgICAgICAgc3pbdV0rPXN6W3ZdOwogICAgfQp9CgppbnQgZmluZF9jZW50cm9pZChpbnQgdSxpbnQgcHUsIGludCBzenJvb3QpewogICAgZm9yIChpaSBwOiBhZGpbdV0pewogICAgICAgIGludCB2ID0gcC5maTsKICAgICAgICBpZiAodj09cHUgfHwgZGVsW3ZdKSBjb250aW51ZTsKICAgICAgICBpZiAoc3pbdl0+c3pyb290LzIpIHJldHVybiBmaW5kX2NlbnRyb2lkKHYsdSwgc3pyb290KTsKICAgIH0KICAgIHJldHVybiB1Owp9CgoKdm9pZCB1cChpbnQgdSwgaW50IHB1LCBpbnQgdywgaW50IGQpewogICAgaWYgKHc+aykgcmV0dXJuOwogICAgaWYgKHRpbWVyW3ddIT0gY250KSBtblt3XSA9ZDsKICAgIGVsc2UgbW5bd10gPSBtaW4obW5bd10sZCk7CiAgICB0aW1lclt3XSA9IGNudDsKCiAgICBmb3IgKGlpIHA6IGFkalt1XSl7CiAgICAgICAgaW50IHYgPSBwLmZpOwogICAgICAgIGludCBjID0gcC5zZTsKCiAgICAgICAgaWYgKHY9PXB1IHx8IGRlbFt2XSkgY29udGludWU7CiAgICAgICAgdXAodix1LHcrYyxkKzEpOwogICAgfQp9Cgp2b2lkIGNhbGMoaW50IHUsIGludCBwdSwgaW50IHcsIGludCBkKXsKICAgIGlmICh3PmspIHJldHVybjsKICAgIGlmICh0aW1lcltrLXddPT1jbnQpIHJlcyA9IG1pbihyZXMsIG1uW2std10rZCk7CgogICAgZm9yIChpaSBwOiBhZGpbdV0pewogICAgICAgIGludCB2ID0gcC5maTsKICAgICAgICBpbnQgYyA9IHAuc2U7CgogICAgICAgIGlmICh2PT1wdSB8fCBkZWxbdl0pIGNvbnRpbnVlOwogICAgICAgIGNhbGModix1LHcrYyxkKzEpOwogICAgfQp9Cgp2b2lkIHNvbHZlKGludCB1KXsKICAgIGRmcyh1LDApOwogICAgdSA9IGZpbmRfY2VudHJvaWQodSwwLHN6W3VdKTsKICAgIGRlbFt1XT0xOwoKICAgIGNudCsrOwogICAgdGltZXJbMF0gPSBjbnQ7CgogICAgZm9yIChpaSBwOiBhZGpbdV0pewogICAgICAgIGludCB2ID0gcC5maTsKICAgICAgICBpbnQgdyA9IHAuc2U7CgogICAgICAgIGlmIChkZWxbdl0pIGNvbnRpbnVlOwogICAgICAgIGNhbGModix1LHcsMSk7CiAgICAgICAgdXAodix1LHcsMSk7CiAgICB9CgogICAgZm9yIChpaSBwOiBhZGpbdV0pewogICAgICAgIGludCB2ID0gcC5maTsKICAgICAgICBpbnQgdyA9IHAuc2U7CgogICAgICAgIGlmIChkZWxbdl0pIGNvbnRpbnVlOwogICAgICAgIHNvbHZlKHYpOwogICAgfQp9CnNpZ25lZCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgY2luPj4gbj4+azsKICAgIGZvciAoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICBpbnQgdSx2LHc7IGNpbj4+dT4+dj4+dzsKICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHt2LHd9KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHt1LHd9KTsKICAgIH0KCiAgICBtZW1zZXQobW4sMHgzZixzaXplb2YobW4pKTsKICAgIG1uWzBdPTA7CiAgICBzb2x2ZSgxKTsKCiAgICBjb3V0IDw8KHJlcyAhPSAxZTE4PyByZXM6LTEpOwp9Cg==