#include <bits/stdc++.h>
using namespace std;
vector<int> e[200010];
struct Node {
  int sz, l;
} c[200010];
bool cmp(const Node &p, const Node &q) { return (p.sz - p.l) > (q.sz - q.l); }
void dfs(int x, int fa) {
  c[x].l = c[fa].l + 1;
  for (int i = 0; i < (int)e[x].size(); i++) {
    int y = e[x][i];
    if (y == fa) continue;
    dfs(y, x);
    c[x].sz += c[y].sz;
  }
  c[x].sz++;
}
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  k = n - k;
  for (int i = 1; i < n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    e[a].push_back(b);
    e[b].push_back(a);
  }
  dfs(1, 0);
  sort(c + 1, c + n + 1, cmp);
  long long ans = 0;
  for (int i = 1; i <= k; i++) {
    ans += (c[i].sz - c[i].l);
  }
  printf("%I64d\n", ans);
  return 0;
}
