#include <bits/stdc++.h>
using namespace std;
const int inf = 2e9 + 1e8 + 1234;
const long long linf = 8e18 + 9e17;
const int N = 4e5 + 7;
const int mod = 998244353;
set<pair<int, int> > mp[N], st;
int n, k, ans;
int du[N];
int main(int argc, char const *argv[]) {
  scanf("%d%d", &n, &k);
  for (int i = 1, u, v, w; i < n; ++i) {
    scanf("%d%d%d", &u, &v, &w);
    mp[u].insert(make_pair(v, w));
    mp[v].insert(make_pair(u, w));
    du[u]++;
    du[v]++;
  }
  for (int i = 1; i <= n; ++i) {
    if (du[i] == 1) {
      st.insert(make_pair((*mp[i].begin()).second, i));
    }
  }
  while (n > k || st.size() > 2) {
    --n;
    ans = (*st.begin()).first;
    int id = (*st.begin()).second;
    st.erase(st.begin());
    int nex = (*mp[id].begin()).first;
    mp[nex].erase(mp[nex].lower_bound(make_pair(id, 0)));
    if (mp[nex].size() == 1) {
      st.insert(make_pair((*mp[nex].begin()).second + ans, nex));
    }
  }
  printf("%d\n", ans);
  return 0;
}
