#include int ri() { int n; scanf("%d", &n); return n; } int64_t rs64() { int64_t n; scanf("%" SCNd64, &n); return n; } int main() { int n = ri(), k = ri(); if (k > n) { puts("-1"); return 0; } std::vector hen[n]; for (int i = 0; i + 1 < n; i++) { int a = ri() - 1; int b = ri() - 1; hen[a].push_back(b); hen[b].push_back(a); } std::vector depth(n, -1); depth[0] = 0; std::queue que; que.push(0); while (que.size()) { int i = que.front(); que.pop(); for (auto j : hen[i]) { if (depth[j] == -1) { depth[j] = depth[i] + 1; que.push(j); } } } std::sort(depth.begin(), depth.end()); int64_t res = 0; for (int i = 0; i < k; i++) res += depth[i]; printf("%" PRId64 "\n", res); return 0; }