#include<fstream>
#include<algorithm>
#include<iostream>
#include<queue>
#include<vector>
#include<bitset>
using namespace std;
ifstream fin("cezar.in");
ofstream fout("cezar.out");
int n,k,a,b,nr,pr,ur=1,c,s;
short v[10005],y[10005],fr[10005],inq[10005];
bitset<10005>f;
vector<pair<short,short> >x[10005];
queue<short>q[2];
queue<short>qu;
queue<short>t;
void ve()
{
int nod,vecin;
while(nr>2)
{
while(!q[pr].empty())
{
nod=q[pr].front();
q[pr].pop();
nr--;
y[nod]++;
f[nod]=1;
//cout<<'\n'<<nod<<'\n';
for(auto i:x[nod])
{
v[i.first]--;
// cout<<i.first<<'\n';
if(!f[i.first])
{
// cout<<'\n'<<i.first<<'\n';
s+=y[nod];
fr[i.second]+=y[nod];
y[i.first]+=y[nod];
}
if(v[i.first]<2&&v[i.first]>=0&&!f[i.first])
{
q[ur].push(i.first);
}
}
}
pr=1-pr;
ur=1-ur;
}
}
int cmp(int A,int B)
{
return A>B;
}
int main()
{
cout<<sizeof(v)*5/(1000);
fin>>n>>k;
for(int i=1;i<n;i++)
{
fin>>a>>b;
x[a].push_back(make_pair(b,i));
x[b].push_back(make_pair(a,i));
v[a]++;
v[b]++;
}
for(int i=1;i<=n;i++)
if(v[i]==1)
{
q[pr].push(i);
// cout<<'\n'<<i;
}
nr=n;
ve();
c=q[pr].front();
q[pr].pop();
//cout<<' '<<c<<' '<<s;
if(!q[pr].empty())
if(q[pr].front()!=c)
{
//cout<<c<<' '<<q[pr].front();
s+=y[c]+1;
for(auto i:x[c])
if(i.first==q[pr].front())
fr[i.second]+=y[c]+1;
c=q[pr].front();
}
sort(fr+1,fr+n-1,cmp);
for(int i=1;i<=k;i++)
s-=fr[i];
fout<<s;
}