#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=2005;
int n,k,Ans=MAXN;
int son[MAXN],vis[MAXN];
vector<int>T[MAXN];
void Dfs(int u,int fa,int dep,int gra){
	if(dep>k/2){
		if(k%2)son[gra]++;
		return ;
	}	
	vis[u]=1;
	int size=T[u].size();
	for(int i=0;i<size;i++){
		int v=T[u][i];
		if(v==fa)continue;
		Dfs(v,u,dep+1,gra);
	}
}
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<n;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		T[x].push_back(y);
		T[y].push_back(x);
	}
	for(int i=1;i<=n;i++){
		memset(vis,0,sizeof(vis));
		memset(son,0,sizeof(son));
		int size=T[i].size(),ret=0;
		vis[i]=1;
		for(int j=0;j<size;j++){
			int v=T[i][j];
			Dfs(v,i,1,v);
			ret=min(ret,-son[v]);
		}
		for(int j=1;j<=n;j++)
			if(!vis[j])ret++;
		if(ret<Ans)Ans=ret;
	}
	printf("%d\n",Ans);
}
