Code:
#include<bits/stdc++.h>
#define setIO(s) freopen(s".in","r",stdin)
#define maxn 200005
using namespace std;
int du[maxn],from[maxn],to[maxn];
int main()
{
// setIO("input");
int n,k;
scanf("%d%d",&n,&k);
for(int i=1;i<n;++i)
{
int x,y;
scanf("%d%d",&x,&y);
++du[x],++du[y];
from[i]=x, to[i]=y;
}
int ans=0, cnt=0;
for(int i=1;i<=n;++i) if(du[i]==1) ++ans;
if(k==0) printf("%d\n",ans);
else
{
cnt=ans;
for(int i=1;i<n;++i)
{
int u=from[i], v=to[i];
int x=min(du[u], du[v]);
int y=max(du[u], du[v]);
if(x<=2&&y>=3) ans=min(ans, cnt-1);
if(x>=3) ans=min(ans, cnt-2);
}
printf("%d\n",ans);
}
return 0;
}