WA#4
#include<bits/stdc++.h>
using namespace std;
const int maxn=1000000+10;
vector<int> vec[maxn];
int n,u,v,mx=0,id,f[maxn],k,h1[maxn],h[maxn],cnt[maxn],ans;
void dfs(int x,int fa,int st){
f[x]=fa;
if(st>mx){
mx=st;id=x;
}
for(int i=0;i<vec[x].size();i++){
if(vec[x][i]!=fa)dfs(vec[x][i],x,st+1);
}
}
void ddfs(int x,int fa,int st){
h1[x]=st;h[x]=h1[x];
for(int i=0;i<vec[x].size();i++){
if(vec[x][i]!=fa&&vec[x][i]!=id)ddfs(vec[x][i],x,st+1);
h[x]=max(h[x],h[vec[x][i]]);
}
}
bool cmp(int q,int p){
return q>p;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n-1;i++){
scanf("%d%d",&u,&v);
vec[v].push_back(u);
vec[u].push_back(v);
}
dfs(1,0,0);
mx=0;
dfs(id,0,0);
for(int i=1;i<=mx/2;i++)id=f[id];
ddfs(id,0,0);
for(int i=1;i<=n;i++)h[i]-=h1[i];
sort(h+1,h+n+1,cmp);
cout<<h[k+1]+1;
return 0;
}