#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n, p;
cin >> n >> p;
p = n - p;
vector<int> g[n + 1];
for (int i = 1; i < n; i++)
{
int a, b;
cin >> a >> b;
g[a].push_back(b);
}
vector<int> sz(n + 1);
function<void(int, int)> dfs;
vector<int> dp(p + 1, 1e8);
int res = 1e8;
dp[0] = 0;
dfs = [&](int u, int fa) -> void
{
sz[u] = 1;
for (auto x : g[u])
{
if (x == fa) continue;
dfs(x, u);
sz[u] += sz[x];
}
vector<int> _(p + 1, 1e9);
_[0] = 0;
for (auto x : g[u])
{
if (x == fa) continue;
for (int j = p; j >= sz[x]; j--)
{
dp[j] = min(dp[j], dp[j - sz[x]] + 1);
_[j] = min(_[j], _[j - sz[x]] + 1);
}
}
res = min(res, dp[p]);
if (p - n + sz[u] >= 0)
res = min(res, _[p - n + sz[u]] + 1);
};
dfs(1, -1);
cout << res << '\n';
return 0;
}