#include using namespace std; typedef long long ll; const int MAXN = 100005; const int INF = 1e9; vector G[MAXN]; vector bfs() { vector dist(MAXN, INF); queue q; q.push(0); dist[0] = 0; while (!q.empty()) { int cur = q.front(); q.pop(); for (int next: G[cur]) { if (dist[next] == INF) { dist[next] = dist[cur] + 1; q.push(next); } } } return dist; } int main() { int n, k; cin >> n >> k; for (int i = 0; i < n - 1; ++i) { int a, b; cin >> a >> b; a--; b--; G[a].push_back(b); G[b].push_back(a); } if (k < n) { cout << k - 1 << '\n'; } else if (k > n) { puts("-1"); } else { vector dist = bfs(); ll ans = 0; for (int i = 0; i < n; ++i) { ans += dist[i]; } cout << ans << '\n'; } return 0; }