#include using namespace std; int main(){ int N, K; cin >> N >> K; vector edges[100000]; for(int i=0; i> a >> b; edges[a-1].push_back(b-1); edges[b-1].push_back(a-1); } if(N < K){ cout << -1 << endl; return 0; } vector dist(N); auto dfs = [&](auto&& dfs, int i, int p)->void{ for(int j : edges[i]) if(j != p){ dist[j] = dist[i] + 1; dfs(dfs, j, i); } }; dfs(dfs, 0, -1); sort(dist.begin(), dist.end()); int64_t ans = 0; for(int i=0; i