#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
vector<int>e[152];
int n,p,u,v,f[302][302],ans;
int dfs(int u){
int num=0;
for(int i=0;i<e[u].size();i++){
int v= e[u][i];
num+=dfs(v);
for(int j=num;j>0;j--)
for(int k=1;k<j;k++)
f[u][j]=min(f[u][j],f[u][j-k]+f[v][k]-1);
}
return num;
}
int main()
{
cin>>n>>p;
for(int i=1;i<n;i++){cin>>u>>v;e[u].push_back(v);}
for(int i=1;i<=n;i++)f[i][1]=e[i].size();
memset(f,0x3f3f3f3f,sizeof(f));
dfs(1);
ans=f[1][p];
for(int i=1;i<=n;i++)if(f[i][p]<ans)ans=f[i][p]+1;
cout<<ans;
return 0;
}