#include <iostream>
#include <vector>
#include <cstring>
using namespace std;

int n,k,ans;
vector<int> pos[2010];

inline int dfs(int x,int p,int d,int mx)
{
	int sum=1;
	if(d!=mx)
		for(int i:pos[x])
		{
			if(i==p) continue;
			sum+=dfs(i,x,d+1,mx);
		}
	return sum;
}

int main()
{
	cin>>n>>k;
	for(int i=0;i<n-1;i++)
	{
		int a,b;
		cin>>a>>b;
		a--;b--;
		pos[a].push_back(b);
		pos[b].push_back(a);
	}
	
	if(k%2==0) for(int i=0;i<n;i++) ans=max(ans,dfs(i,-1,0,k/2));
	else
		for(int i=0;i<n;i++)
			for(int j:pos[i]) ans=max(ans,dfs(i,j,0,k/2)+dfs(j,i,0,k/2));
	
	cout<<n-ans;
	
	return 0;
}