#include using namespace std; #define rep(i, n) for(int(i)=0;(i)<(n);(i)++) int main() { int n, k; cin >> n >> k; if(n < k) cout << -1 << endl; else { vector> G(n); rep(i, n-1) { int a, b; cin >> a >> b; a--;b--; G[a].emplace_back(b); G[b].emplace_back(a); } queue que; vector used(n); vector depth(n); que.emplace(0); int num = 0; while(!que.empty()) { int v = que.front();que.pop(); used[v] = 1; num++; if(num == k) break; for(auto next_v : G[v]) { if(used[next_v]) continue; depth[next_v] = depth[v] + 1; que.emplace(next_v); } } cout << *max_element(depth.begin(), depth.end()) << endl; } }